#ifndef CRC_H
#define CRC_H

#include <stdint.h>
#include <stdbool.h>


/*
**********************************************************************************************************************
* Includes
**********************************************************************************************************************
*/

#include "Crc_Cfg.h"               /* Configuration file */



/*
**********************************************************************************************************************
* Defines/Macros
**********************************************************************************************************************
*/


/*
**********************************************************************************************************************
* Type definitions
**********************************************************************************************************************
*/


/*
**********************************************************************************************************************
* Variables
**********************************************************************************************************************
*/


/*
**********************************************************************************************************************
* Extern declarations
**********************************************************************************************************************
*/


/*
 **********************************************************************************************************************
 * Prototypes
 **********************************************************************************************************************
*/

extern uint8_t Crc_CalculateCRC8(const uint8_t* Crc_DataPtr, uint32_t Crc_Length, uint8_t Crc_StartValue8, bool Crc_IsFirstCall);
extern uint8_t Crc_CalculateCRC8H2F(const uint8_t* Crc_DataPtr, uint32_t Crc_Length, uint8_t Crc_StartValue8, bool Crc_IsFirstCall);
extern uint16_t Crc_CalculateCRC16(const uint8_t* Crc_DataPtr, uint32_t Crc_Length, uint16_t Crc_StartValue16, bool Crc_IsFirstCall);
extern uint32_t Crc_CalculateCRC32(const uint8_t* Crc_DataPtr, uint32_t Crc_Length, uint32_t Crc_StartValue32, bool Crc_IsFirstCall);
extern uint32_t Crc_CalculateCRC32P4(const uint8_t* Crc_DataPtr, uint32_t Crc_Length, uint32_t Crc_StartValue32, bool Crc_IsFirstCall);


#endif /* CRC_H */


